package com.powernode.cudops;

import com.mysql.cj.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @Author Arrebol
 * @Date 2024/7/31 18:09
 * @Project jdbc
 * @Description：
 * 使用JDBC程序向jabc.t_user表中插入一条数据
 */
public class JdbcTest1 {
    public static final String URL="jdbc:mysql://localhost:3306/jdbc";
    public static final String USER="makangji";
    public static final String PASSWORD="makangji371526";

    public static void main(String[] args) throws SQLException {
        //注册驱动
        //com.mysql.cj.jdbc.Driver 是MySQL驱动最核心的类
        //这个类实现了Driver接口
        Driver driver=new Driver();             //创建核心驱动对象
        DriverManager.registerDriver(driver);   //注册驱动
        //获取连接
        Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
        System.out.println(connection);         //com.mysql.cj.jdbc.ConnectionImpl@1bd4fdd
        //解释：MySQL数据库厂商对java.sql.connection接口的实现
        //获取数据库操作对象
        Statement statement = connection.createStatement();
        System.out.println("statement = " + statement);
        //Statement statement2 = connection.createStatement();
        //System.out.println("statement2 = " + statement2);
        //执行SQL语句
        //SQL语句的分号可以省略
        String sql="insert into t_user (username,password,real_name,gender,tel) values" +
                "('lisi','lisi123','李四','女','12312312311')";
        //返回值含义：当SQL语句是一个DQL语句且查询到了结果，返回true
        //当SQL语句是DML或者没有查询到结果的时候，返回false
        //boolean status = statement.execute(sql);
        //System.out.println(status?"插入成功":"插入失败");
        //凡是执行DML语句，建议直接使用executeUpdate方法
        int count = statement.executeUpdate(sql);
        System.out.println(count==1?"插入成功":"插入失败");
        //处理结果集（null）
        //释放资源
        //原则：从小到大，按照打开顺序的逆序关闭
        //关闭之前可以判断一下是否为空
        if(statement!=null){
            statement.close();
        }
        if(connection!=null){
            connection.close();
        }
    }
}
